MyApp.render   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 17
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 17
dl 0
loc 17
c 0
b 0
f 0
rs 9.55
cc 2
1
import App from 'next/app'
2
import React from 'react'
3
import { LocalizeProvider } from 'react-localize-redux'
4
import { IconContext } from 'react-icons/lib/'
5
import LocalizedComponent from '~/modules/core/localize/LocalizedComponent'
6
import Loading from '~/modules/core/components/Loading'
7
import ErrorBoundary from '~/modules/core/components/ErrorBoundary'
8
import ThemeProviderSelector from '~/modules/core/theme/ThemeProviderSelector'
9
10
import 'bootstrap/dist/css/bootstrap.min.css'
11
export default class MyApp extends App {
12
  state = {
13
    loading: true
14
  }
15
16
  componentDidMount() {
17
    this.setState({ loading: false })
18
  }
19
20
  render() {
21
    const { Component, pageProps } = this.props
22
    return this.state.loading ? (
23
      <Loading />
24
    ) : (
25
      <IconContext.Provider value={{ style: { verticalAlign: 'middle' } }}>
26
        <ThemeProviderSelector>
27
          <LocalizeProvider>
28
            <LocalizedComponent>
29
              <ErrorBoundary>
30
                <Component {...pageProps} />
31
              </ErrorBoundary>
32
            </LocalizedComponent>
33
          </LocalizeProvider>
34
        </ThemeProviderSelector>
35
      </IconContext.Provider>
36
    )
37
  }
38
}
39